package com.mornd.gulimall.ware.feign;

import com.mornd.gulimall.apis.ware.IWareClient;
import com.mornd.gulimall.apis.ware.to.OrderLockStockResult;
import com.mornd.gulimall.apis.ware.to.SkusHasStockTo;
import com.mornd.gulimall.apis.ware.to.WareSkuLockTo;
import com.mornd.gulimall.common.core.result.R;
import com.mornd.gulimall.ware.service.IWareSkuService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author: mornd
 * @dateTime: 2023/8/9 - 16:18
 */

@Slf4j
@RestController
public class WareClient implements IWareClient {
    @Resource
    private IWareSkuService wareSkuService;

    @Override
    public R<List<SkusHasStockTo>> getSkusHasStock(List<Long> ids) {
        List<SkusHasStockTo> skusHasStock = wareSkuService.getSkusHasStock(ids);
        return R.ok(skusHasStock);
    }

    @Override
    public R<OrderLockStockResult> orderLockStock(WareSkuLockTo wareSkuLockTo) {
        OrderLockStockResult result = wareSkuService.orderLockStock(wareSkuLockTo);
        return R.ok(result);
    }

    @Override
    public R orderLockStock2(WareSkuLockTo wareSkuLockTo) {
        try {
            wareSkuService.orderLockStock2(wareSkuLockTo);
        } catch (Exception e) {
            log.error(e.getMessage());
            return R.fail(e.getMessage());
        }
        return R.ok();
    }
}
